# 捕获特定异常
# 输入一个数字，处理8除以该数字的计算
# 要求：当除数为0时捕获 ZeroDivisionError 的异常，并输出：除数不能为0
# try:
#     num = int(input("请输入一个整数："))
#     result = 8 / num
#     print(result)
# except ZeroDivisionError:   # 捕获特定异常后执行的代码
#     print("除数不能为0")


# 捕获未知异常
# try:
#     num = int(input("请输入一个整数："))
#     result = 8 / num
#     print(result)
# except Exception as e:    # 捕获所有异常后执行的代码
#     print(f"捕获的异常类型有：{e}")


# 捕获异常完整版
"""
需求：
python基础. 提示用户输入一个整数
2. 使用 8 除以用户输入的整数并且输出
3. 如果不是整数, 提示：输入错误,请输入数字
4. 如果是整数，但是除数为0，提示：不能被0整除
5. 如果是满足条件的整数, 则进一步判断是奇数还是偶数
6. 最终提示: 程序运行结束
"""
# try: # 尝试执行的代码
#     num = int(input("请输入数字："))
#     result = 8 / num
# except ValueError:   # 已知错误类型
#     print("输入的是非数字")
# except Exception as e:    # 未知错误类型
#     print(f"其他类型错误：{e}")
# else: # 上述都不满足情况
#     if num % 2 == 0:
#         print("偶数")
#     else:
#         print("奇数")
# finally:   # 不管上述满足/不满足都需要执行
#     print("程序运行结束")


# 主动抛出异常
"""
需求：
python基础. 定义 input_password 函数， 提示用户输入密码
2. 如果用户输入长度 < 8， 抛出异常
3. 如果用户输入长度 >=8， 返回输入的密码
"""


def input_password():
    """输入函数"""
    pwd = input("请输入密码：")
    # 判断
    if len(pwd) < 8:
        ex = Exception("输入密码长度不足8位")
        raise ex  # 主动抛出异常
    else:
        return pwd


try:
    print(input_password())
except Exception as e:
         print(e)

# input_password()

if __name__ == '_main_':
    # 捕获异常
    try:
        print(input_password())
    except Exception as e:
         print(e)
